// 1. 导入定义store的函数
import type { User } from '@/types/login'
import { defineStore } from 'pinia'
import { ref } from 'vue'

// 2. 创建store并导出=> 命名规范：useXxxStore
// 语法：export const useCountStore(函数) = defineStore('id唯一', callback回调函数)
export const useUserStore = defineStore(
  'user-store',
  () => {
    // == 定义pinia全局数据和改数据的方法 ==
    // 存储登录成功的用户数据（token、用户ID、头像等）=》将来登录模块使用=》登录成功后
    const user = ref({} as User)
    const test = ref(true)
    // 1.登录 说明：将来登录成功后，调用这个方法存用户数据
    const setUser = (u: User) => {
      user.value = u
    }
    // 2. 退出登录使用
    const delUser = () => {
      user.value = {} as User
    }
    return { user, setUser, delUser, test }
  },
  {
    // 1. 开启数据持久化（任何数据发生变化后，都会自动持久化到本地）
    // persist: true
    // 2. 自定义数据持久化
    persist: {
      // 在这里进行自定义配置
      key: 'consult-user', // 存储属性名
      paths: ['user', 'test'] // 指定存储那个变量=>[变量名1, 变量名2...]
    }
  }
)
